/*
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API's operations, data types, and schemas.
 *
 * OpenAPI spec version: v1
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

package software.amazon.spapi.models.sellers.v1;

import com.google.gson.annotations.SerializedName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.Objects;

/** MarketplaceParticipation */
public class MarketplaceParticipation {
    @SerializedName("marketplace")
    private Marketplace marketplace = null;

    @SerializedName("participation")
    private Participation participation = null;

    @SerializedName("storeName")
    private String storeName = null;

    public MarketplaceParticipation marketplace(Marketplace marketplace) {
        this.marketplace = marketplace;
        return this;
    }

    /**
     * Get marketplace
     *
     * @return marketplace
     */
    @Schema(required = true, description = "")
    public Marketplace getMarketplace() {
        return marketplace;
    }

    public void setMarketplace(Marketplace marketplace) {
        this.marketplace = marketplace;
    }

    public MarketplaceParticipation participation(Participation participation) {
        this.participation = participation;
        return this;
    }

    /**
     * Get participation
     *
     * @return participation
     */
    @Schema(required = true, description = "")
    public Participation getParticipation() {
        return participation;
    }

    public void setParticipation(Participation participation) {
        this.participation = participation;
    }

    public MarketplaceParticipation storeName(String storeName) {
        this.storeName = storeName;
        return this;
    }

    /**
     * The name of the seller&#x27;s store as displayed in the marketplace.
     *
     * @return storeName
     */
    @Schema(required = true, description = "The name of the seller's store as displayed in the marketplace.")
    public String getStoreName() {
        return storeName;
    }

    public void setStoreName(String storeName) {
        this.storeName = storeName;
    }

    @Override
    public boolean equals(java.lang.Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        MarketplaceParticipation marketplaceParticipation = (MarketplaceParticipation) o;
        return Objects.equals(this.marketplace, marketplaceParticipation.marketplace)
                && Objects.equals(this.participation, marketplaceParticipation.participation)
                && Objects.equals(this.storeName, marketplaceParticipation.storeName);
    }

    @Override
    public int hashCode() {
        return Objects.hash(marketplace, participation, storeName);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class MarketplaceParticipation {\n");

        sb.append("    marketplace: ").append(toIndentedString(marketplace)).append("\n");
        sb.append("    participation: ").append(toIndentedString(participation)).append("\n");
        sb.append("    storeName: ").append(toIndentedString(storeName)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    /** Convert the given object to string with each line indented by 4 spaces (except the first line). */
    private String toIndentedString(java.lang.Object o) {
        if (o == null) {
            return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }
}
